var formatValue = function (size, targetUnit) {
    var _a, _b;
    var source = {
        BYTE: 1,
        KB: 1024,
        MB: 1024 * 1024,
        GB: 1024 * 1024 * 1024
    };
    var unit; // 传入的数字中带的单位
    var numReg = /^\d+/g;
    var unitReg = /[a-z|A-Z]+$/g;
    var result; // 结果值
    var transfer; //用来过渡的变量转换
    if (typeof size === "string") {
        unit = (_a = size.match(unitReg)) === null || _a === void 0 ? void 0 : _a.toString().toUpperCase(); //将size中的单位转成大写
        size = (_b = size.match(numReg)) === null || _b === void 0 ? void 0 : _b.toString();
        size = size && Number(size);
    }
    // 先把所有传入的数据转化成字节
    // Object.keys(source).forEach((item, i) => {
    //   if (unit === item) {
    //     size = size * source[item];
    //   }
    // });
    if (unit && typeof size === 'number') {
        size = size * source[unit];
    }
    // 如果有目标单位
    if (targetUnit && typeof size === 'number') {
        targetUnit = targetUnit.toUpperCase(); //将目标单位转成大写
        //   Object.keys(source).forEach((item, i) => {
        //     if (targetUnit === item) {
        //       result = size / source[item] + targetUnit;
        //     }
        //   });
        result = size / source[targetUnit] + targetUnit;
    }
    // 如果没有目标单位
    if (!targetUnit) {
        Object.keys(source).forEach(function (item, i) {
            if (typeof size === 'number') {
                transfer = size / source[item];
                if (transfer > 1 && transfer <= 1024) {
                    result = transfer + item;
                }
            }
        });
    }
    return result;
};
console.log(formatValue("10259874KB"));
console.log(formatValue(10259874));
console.log(formatValue("10259874Gb", "KB"));
